package StreamOf;

import java.util.Arrays;
import java.util.List;

/**
 * @author zc
 * @version 1.0
 * @date 2021/9/24 16:58
 *    匹配、聚合操作
 *    allMatch：接收一个 Predicate 函数，当流中每个元素都符合该断言时才返回true，否则返回false
 * 　　noneMatch：接收一个 Predicate 函数，当流中每个元素都不符合该断言时才返回true，否则返回false
 * 　　anyMatch：接收一个 Predicate 函数，只要流中有一个元素满足该断言则返回true，否则返回false
 * 　　findFirst：返回流中第一个元素
 * 　　findAny：返回流中的任意元素
 * 　　count：返回流中元素的总个数
 * 　　max：返回流中元素最大值
 * 　　min：返回流中元素最小值
 */
public class Test12 {

    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
        boolean allMatch = list.stream().allMatch(e -> e > 10); //false
        boolean noneMatch = list.stream().noneMatch(e -> e > 10); //true
        boolean anyMatch = list.stream().anyMatch(e -> e > 4); //true

        Integer findFirst = list.stream().findFirst().get(); //1
        System.out.println(findFirst);
        Integer findAny = list.stream().findAny().get(); //1
        System.out.println(findAny);


        long count = list.stream().count();
        System.out.println(count);
        Integer max = list.stream().max(Integer::compareTo).get();
        System.out.println(max);
        Integer min = list.stream().min(Integer::compareTo).get();
        System.out.println(min);
    }
}
